class Solution {
public:
    /**
     * return topK string
     * @param strings string字符串vector strings
     * @param k int整型 the k
     * @return string字符串vector<vector<>>
     */
    /*
    哈希表key存字符串，value存字符串出现的次数
    进入循环，每循环一次k--,直到k为0
    在循环中找哈希表中value最大的元素，将元素的key和value，放入集合中，
    */
    vector<vector<string> > topKstrings(vector<string>& strings, int k) {
        // write code here
        map<string,int>m;
        for(auto x:strings)
        {
            m[x]++;
        }
        vector<vector<string>>ans;
        while(k--)
        {
            int num=0;
            vector<string>tmp;
            for(auto it=m.begin();it!=m.end();it++)
                num=max(num,it->second);
            for(auto it=m.begin();it!=m.end();it++)
            {
                if(it->second==num)
                {
                    tmp.push_back(it->first);
                    tmp.push_back(to_string(num));
                    m.erase(it);
                    break;
                }
            }
            ans.push_back(tmp);
    }
        return ans;
    }
};